﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using public_dbOpt;

namespace prjEMR22_154
{
    public partial class Inspect : Form
    {
        dbOPT dataOpt = new dbOPT();
        static public bool New_check;
        static public string strInspectID;

        public Inspect()
        {
            InitializeComponent();
        }

        private void dgvPatient_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex >= 0) // 确保单击的是数据行，而不是列标题  
            {
                New_check = false;

                // 确保点击的是有效的单元格  
                if (e.RowIndex >= 0 && e.ColumnIndex >= 0)
                {
                    // 获取点击的单元格所在的行对象  
                    DataGridViewRow row = dgvPatient.Rows[e.RowIndex];

                    // 访问同一行的其他单元格的值  
                    // 假设你有一个名为 "HspID" 的列，并且你想获取这个列的值  
                    strInspectID = row.Cells["InspectID"].Value.ToString();


                    Inspect_exdit PatientInfo = new Inspect_exdit(); //实例化一个子窗口
                    //设置子窗口不显示为顶级窗口
                    PatientInfo.TopLevel = false;
                    //设置子窗口的样式，没有上面的标题栏
                    PatientInfo.FormBorderStyle = FormBorderStyle.None;
                    //填充
                    PatientInfo.Dock = DockStyle.Fill;
                    //清空Panel里面的控件 
                    this.panel2.Controls.Clear();
                    //加入控件
                    this.panel2.Controls.Add(PatientInfo);
                    //让窗体显示
                    PatientInfo.Show();
                }
            }
        }

        private void btnFind_Click(object sender, EventArgs e)
        {
            string StrFind = "";    //执行语句
            DataSet ds = new DataSet();//创建数据集

            if (InspectID.Text.Length > 0)
            {
                if (StrFind != "")
                    StrFind = StrFind + String.Format("and InspectID like '%{0}%' ", InspectID.Text);
                else
                    StrFind = StrFind + String.Format("InspectID like '%{0}%' ", InspectID.Text);
            }
            if (DepartName.Text.Length > 0)
            {
                if (StrFind != "")
                    StrFind = StrFind + String.Format("and DepartName like '%{0}%' ", DepartName.Text);
                else
                    StrFind = StrFind + String.Format("DepartName like '%{0}%' ", DepartName.Text);
            }
            if (检查项目.Text.Length > 0)
            {
                if (StrFind != "")
                    StrFind = StrFind + String.Format("and 检查项目 like '%{0}%' ", 检查项目.Text);
                else
                    StrFind = StrFind + String.Format("检查项目 like '%{0}%' ", 检查项目.Text);
            }

            if (InspectID.Text.Length > 0 || DepartName.Text.Length > 0 || 检查项目.Text.Length > 0)  //输入为非空查询
            {
                StrFind = "select * from inspectinfo where " + StrFind + ";";
                ds = dataOpt.BindDataGridView(dgvPatient, StrFind);     //执行查询语句
                if (ds != null && ds.Tables[0].Rows.Count != 0) { }//检查查询结果是否为空，非空则不执行任何操作
                else
                {
                    // 处理没有数据或查询失败的情况  
                    MessageBox.Show("查询为空。");
                }
            }
            else   //空查询，显示表中全部信息
            {
                StrFind = "select * from inspectinfo;";
                dataOpt.BindDataGridView(dgvPatient, StrFind);
            }
        }

        private void refresh_Click(object sender, EventArgs e)
        {
            string sql = String.Format("select * from inspectinfo");
            DataSet ds = new DataSet();//创建数据集
            ds = dataOpt.BindDataGridView(dgvPatient, sql);
            if (ds != null && ds.Tables[0].Rows.Count != 0)
            {

            }//检查查询结果是否为空，非空则不执行任何操作
            else
            {
                // 处理没有数据或查询失败的情况  
                MessageBox.Show("查询为空。");
            }
        }

        private void New_Click(object sender, EventArgs e)
        {
            New_check = true;

            Inspect_exdit PatientInfo = new Inspect_exdit(); //实例化一个子窗口
            //设置子窗口不显示为顶级窗口
            PatientInfo.TopLevel = false;
            //设置子窗口的样式，没有上面的标题栏
            PatientInfo.FormBorderStyle = FormBorderStyle.None;
            //填充
            PatientInfo.Dock = DockStyle.Fill;
            //清空Panel里面的控件 
            this.panel2.Controls.Clear();
            //加入控件
            this.panel2.Controls.Add(PatientInfo);
            //让窗体显示
            PatientInfo.Show();
        }

        private void Inspect_Load(object sender, EventArgs e)
        {
            //绑定科室下拉列表
            dataOpt.BindDropdownlist("departinfo", DepartName, 1);
        }
    }
}
